--Entry 2. Gameplay rooms: 9

entry2 = diary {
   nam          = "5 сентября 1846 года"
  ,enter        = music_("paper")
  ,dsc          = [[Я продолжаю исправно считать дни, как если бы спокойная расчетливость и педантичность -- а также ежедневные записи
                    в бортовом журнале "Майского цветка" -- могли неведомым образом приблизить мое спасение. Хандра моя продолжает усиливаться,
                    и теперь меня мучает сильный чахоточный кашель, а я даже не могу найти на этом корабле хоть какую-нибудь микстуру. Впрочем,
                    неудивительно, что здоровье мое подорвано. Здешний климат вовсе не располагает к частым пешим прогулкам -- особенно, в этот
                    клятый сезон дождей, когда на один солнечный день выпадает неделя ливней. Отец, который бывал на островах раньше, часто рассказывал
                    о здешних дождях, и я, помнится, даже шутил, что отважному этнографу надо первым делом не забыть прихватить с собой зонтик,
                    а не то вся исследовательская миссия окажется под угрозой из-за обычной простуды, которой, по всей видимости, страдаю
                    теперь и я.^^
                    Однако погубила нас вовсе не простуда. До сих пор мне иногда слышатся крики матросов, я вижу капитана с бледным, точно не живым
                    лицом, который едва стоит на ногах, опираясь на самодельную деревянную клюку, и смотрит сквозь меня черными, запавшими глазами.
                    Это было подобно каре Господней, но только за что Он покарал нас? Первого же заболевшего матроса мы перенесли в отдельную каюту,
                    но было уже поздно. А потом слег сам врач... Иногда я думаю -- то, что я единственный остался в живых, это дар Господень или же
                    наказание? 
                    Но я дал себе обещание -- я должен вернуться. Лиза ждет меня. Прошло еще не так много времени, и сейчас она, наверное, думает,
                    что я занимаюсь исследованием туземцев на островах, пишу труд, который не успел написать мой отец. Раньше, еще до отплытия, мне
                    казалось, что Лиза будет сниться мне каждую ночь, однако я не видел ни одного сна с тех пор, как "Майский цветок" покинул воды
                    Англии.]]
  ,next         = chain_ { 
                    music_("crypticsorrow", 0), 
                    walk_("maindeck", 
                      [[Без подзорной трубы я чувствую себя слепым. И как я мог потерять ее? Но наверняка же на всем этом корабле должна быть хоть
                        какая-то подзорная труба. Я вспоминаю, что видел одну в руках у капитана. Да и матрос, который поднимался на смотровую площадку
                        на грот-мачте... Кажется, я не раз замечал в его руках подзорную трубу. Кто знает, быть может, она до сих пор осталась там,
                        на вершине мачты, хотя мне самому слабо верится в это.]]) 
                  }
}


------------------------------------------------------------------------------------------
-- maindeck
------------------------------------------------------------------------------------------

maindeck = scene {
   nam          = "На палубе"
  ,obj          = { 
                     "maindeck_itself"
                    ,"maindeck_boat"
                    ,"maindeck_mast"
                    ,"maindeck_mast2"
                    ,"maindeck_sky"
                    ,"maindeck_sail"
                    ,"rope"
                    ,"maindeck_gocabin"
                    ,"maindeck_gohold"
                    ,"maindeck_ship"
                    ,"maindeck_shore"
                  }
  ,enter        = function(s)
                    if have("candle") and candle._fire then
                      candle._fire = false;
                      s._tmpdsc = "Ветер задул свечу.";
                    end
                  end
}

maindeck_itself = item {
   nam          = _"палуба"
  ,Exam         = [[Палуба корабля не очень большая. В носовой части и на корме стоят на деревянных пазах небольшие шлюпки. С палубы можно подняться 
                    в каюту капитана или спуститься в трюм.]]
  ,Walk         = "Я и так на палубе."
  ,WalkOn       = "Я прошелся по палубе."
  ,Lie          = [[У меня нет никакого желания лежать на грязной палубе.]]
  ,Sit          = [[Я сажусь на палубу рядом с грот-матчой и некоторое время смотрю на поднятый парус. Ветер приносит запах горечи и соли. Пусть сейчас 
                    на небе нет ни облака, но наверняка в конце дня пойдет дождь. Я чувствую это.^ Наконец я встаю на ноги.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withThrow    = true
}

maindeck_boat = item {
   nam          = _"шлюпки"
  ,Exam         = [[Спустить их на воду в одиночку не так-то просто, если вообще возможно. Впрочем, одна шлюпка -- та, что привязана к деревянным пазам сразу за
                    бизань-мачтой -- давно уже привлекает мое внимание. Но для начала неплохо бы найти себе новую подзорную трубу.]]
  ,Move         = [[Я не думаю, что у меня сейчас есть силы заниматься этим.]]
  ,Fire         = [[Сжигать свою последнюю надежду убраться с этого острова? Ну уж нет.]]
  ,FireOff      = nilfn
  ,Ascend       = [[У меня нет желания залезать в какую-либо из этих шлюпок.]]
  ,Climb        = redirect_("Ascend", "maindeck_boat")
  ,ClimbIn      = redirect_("Ascend", "maindeck_boat")
  ,Clean        = nilfn
}

maindeck_mast = item {
   nam          = _"мачта|~грот-мачта"
  ,dsc          = [[Я стою на палубе своего корабля, рядом с грот-мачтой.]]
  ,Exam         = [[Это самая высокая мачта со смотровой площадкой наверху. Парус на мачте все еще поднят и колышется на ветру. На эту мачту часто забирался
                    тот матрос... Как же его звали? Сэм? Он умер одним из первых. Поговаривали, что у него там, на смотровой площадке, есть секретная заначка,
                    фляжка рома или еще какого крепкого, раздирающего глотку пойла. Видно, так он согревался от пронизывающего океанического холода, когда стоял
                    наверху, открытый всем ветрам.]]
  ,Descend      = [[Я и так не на мачте.]]
  ,Ascend       = choose_ {
                     ["not shoes._off"] = 
                        [[Я помню, как Сэм залезал на эту мачту -- он карабкался быстро и ловко, цепляясь руками и босыми ногами
                          за снасти. Было в его движениях что-то от животного,
                          какая-то неестественная для здоровенного взрослого мужчины кошачья сноровка. Сомневаюсь, что я смогу подняться на эту мачту в своих тесных башмаках.]]
                    ,["shoes._off and not jacket._off"] = 
                        [[Я начинаю забираться по мачте, стараясь двигаться так же, как и Сэм -- моряк, который был на корабле смотровым. Однако
                          цепляться за снасти совсем не просто, к тому же тесный камзол всерьез стесняет мои движения. Я быстро устаю и
                          спускаюсь вниз.]]
                    ,["shoes._off and jacket._off"] = walk_("mast")
                  }
  ,Climb        = redirect_("Ascend", "maindeck_mast")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Move         = [[Кажется, я медленно схожу с ума, раз такие мысли приходят мне в голову.]]
  ,Clean        = nilfn
}

maindeck_mast2 = item {
   nam          = _"~бизань-мачта"
  ,Exam         = [[Кормовая мачта корабля, которая поддерживается растяжками. Рядом с мачтой стоят несколько шлюпок.]]
  ,Descend      = [[Я и так не на мачте.]]
  ,Ascend       = [[Не вижу смысла подниматься на эту мачту.]]
  ,Climb        = redirect_("Ascend", "maindeck_mast2")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Move         = redirect_("Move", "maindeck_mast")
  ,Clean        = nilfn
}

maindeck_sky = item {
   nam          = _"небо"
  ,dsc          = [[Небо сегодня чистое, бледного невыразительного цвета, точно выгоревшее на солнце, однако меня все равно знобит -- быть может, 
                    из-за порывистого ветра, который поднялся с самого утра.^]]
  ,Exam         = [[Нечасто здесь увидишь такое ясное небо.]]
}

maindeck_sail = item {
   nam          = _"парус"
  ,Exam         = [[Я так и не смог опустить парус, и его по-прежнему раздувает ветер. Когда смотришь вверх, на самую вершину мачты, то кажется, будто бы
                    корабль все еще плывет по волнам -- мы только что покинули порт и вышли в океан. Впереди у нас -- тысяча миль пути. 
                    Через ураганы и ливни, через безумные течения и ветра. Я все еще вижу перед глазами Лизу, как она стоит на пристани и машет мне рукой. Мы
                    расстались совсем недавно, но я уже начинаю скучать.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Ascend       = [[Забраться на парус будет непросто, и я не очень понимаю, зачем нужно делать это. С другой стороны -- может, стоит попробовать подняться на
                    смотровую площадку на грот-мачте?]]
  ,Climb        = redirect_("Ascend", "maindeck_sail")
}

rope = item {
   nam          = _"верёвка с крюком"
  ,dsc          = [[У правого фальшборта лежит длинная веревка с железным крюком на конце.]]
  ,Exam         = [[Длинная веревка с массивным железным крюком на конце, с помощью которой я забираюсь на корабль.]]
  ,Throw        = use_ {
                     ["default"] = [[Если я потеряю эту веревку, то не смогу даже спуститься с корабля.]]
                    ,["mast_square"] = walk_("square",
                      [[Я подкинул веревку вверх, и она зацепилась крюком за перекладину над смотровой площадкой. Медленно, стараясь не смотреть вниз,
                        я поднялся по веревке на смотровую площадку.]])
                  }
  ,ThrowIn      = use_ {
                     ["default"] = [[Если я потеряю эту веревку, то не смогу даже спуститься с корабля.]]
                    ,["mast_square"] = walk_("square",
                      [[Я подкинул веревку вверх, и она зацепилась крюком за перекладину над смотровой площадкой. Медленно, стараясь не смотреть вниз,
                        я поднялся по веревке на смотровую площадку.]])
                  }
  ,Take         = chain_ {
                    take_("rope"),
                    [[Я подобрал веревку с крюком на конце.]]
                  }
  ,Pick         = redirect_("Take", "rope")
  ,withOpen     = true
}

maindeck_gocabin = item {
   nam          = _"каюта капитана"
  ,dsc          = [[С палубы можно подняться в каюту капитана]]
  ,WalkIn       = walk_("cabin")
  ,GetIn        = walk_("cabin")
  ,ClimbIn      = walk_("cabin")
}

maindeck_gohold = item {
   nam          = _"трюм"
  ,dsc          = [[или спуститься вниз, в трюм.]]
  ,WalkIn       = walk_("hold")
  ,DescendTo    = walk_("hold")
  ,ClimbIn      = walk_("hold")
}

maindeck_ship = item {
   nam          = _"корабль"
  ,Exam         = [["Майский цветок", корабль, который достался мне в наследство от отца и которому суждено было завершить свое первое плавание здесь, на рифах.]]
  ,Descend      = [[Лучше сначала найти подзорную трубу.]]
  ,Fire         = [[Я еще не сошел с ума, чтобы поджигать корабль.]]
  ,FireOff      = nilfn
  ,Move         = redirect_("Move", "maindeck_mast")
}

maindeck_shore = item {
   nam          = _"берег"
  ,Walk         = redirect_("Descend", "maindeck_ship")
  ,DescendOn    = redirect_("Descend", "maindeck_ship")
}

------------------------------------------------------------------------------------------
-- mast
------------------------------------------------------------------------------------------

mast = scene {
   nam          = "На мачте"
  ,dsc          = [[С большим трудом, цепляясь за снасти руками и ногами, я поднимаюсь на верх мачты. Силы мои почти на исходе, я чувствую, как все
                    тело мое дрожит от усталости -- все-таки здоровье мое за последние дни сильно пошатнулось, и это явно не морская болезнь.^ 
                    До смотровой плошадки остается совсем немного, однако веревочных колец на мачте больше нет, а я никак не могу дотянуться до деревянного
                    козырька у меня над головой.]]
  ,newdsc       = [[Я стою, упираясь босыми ногами в кольцо из веревки и обхватив руками скользкий промасленный ствол мачты. Все тело мое дрожит от усталости.
                    До смотровой плошадки остается совсем немного, однако веревочных колец на мачте больше нет, а я никак не могу дотянуться до деревянного
                    козырька у меня над головой.]]
  ,obj          = { 
                     "mast_itself"
                    ,"mast_square"
                    ,"mast_rings"
                    ,"mast_hold"
                  }
  ,TurnAround   = [[Я обернулся, затем посмотрел вниз. Да, я действительно поднялся очень высоко.]]
  ,Wait         = [[Не вижу смысла долго висеть на этой мачте -- руки мои уже начинают ныть от усталости.]]
}

mast_itself = item {
   nam          = _"мачта"
  ,Exam         = [[Самая большая мачта на этом корабле. Мне не верится, что я смог подняться так высоко. До смотровой площадки осталось совсем немного.]]
  ,Descend      = walk_("maindeck", "Я так и не смог подняться на смотровую площадку. Мне ничего не оставалось как спуститься вниз, на палубу.")
  ,Ascend       = [[Я поднялся уже почти на самый верх, колец из веревки больше нет.]]
  ,Climb        = redirect_("Ascend", "mast_itself")
  ,Move         = [[Это попросту невозможно.]]
  ,JumpFrom     = [[Не стоит прыгать отсюда, я наверняка разобьюсь.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withPure     = true
}

mast_square = item {
   nam          = _"смотровая площадка"
  ,Exam         = [[Я вспоминаю, как Сэм, покойный моряк, стоял на этой узенькой смотровой площадке, обхватив мачту и вперив свой взгляд в океан, прикрываясь
                    одной рукой от солнца. Но вот вспомнить, как именно он забирался на этот узенький козырек, я совсем не могу. Дотянуться до смотровой площадки у меня никак не получается.
                    Неужели единственная возможность -- это прыгать?]]
  ,Jump         = [[Несколько секунд я раздумываю о том, чтобы попробовать допрыгнуть до смотровой площадки, но потом невольно роняю взгляд вниз... Нет, я забрался
                    так высоко! А что, если я сорвусь? Вряд ли у меня хватит сил допрыгнуть.]]
  ,Ascend       = redirect_("Jump", "mast_square")
  ,Climb        = redirect_("Jump", "mast_square")
  ,Descend      = [[Чтобы спуститься со смотровой площадки, нужно сначала на нее залезть.]]
  ,Move         = redirect_("Move", "mast_itself")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withPure     = true
  ,withThrow    = true
  ,withThrowIn  = true
}

mast_rings = item {  
   nam          = _"снасти|такелаж"
  ,Exam         = [[На мачте есть снасти, по которым матросы обычно поднимаются вверх. Грубые плетёные верёвки находятся примерно на одинаковом расстоянии друг от друга,
                    однако над моей головой снастей нет. Возможно, они оборвались при крушении?]]
  ,Jump         = [[Снасти в этой части мачты, наверное, оборвались и подняться наверх старым путём не получится. Надо что-нибудь придумать.]]
  ,Ascend       = redirect_("Jump", "mast_rings")
  ,Climb        = redirect_("Jump", "mast_rings")
  ,Descend      = walk_("maindeck", "Я так и не смог подняться на смотровую площадку. Мне ничего не оставалось как спуститься вниз, на палубу.")
  ,JumpFrom     = redirect_("JumpFrom", "mast_itself")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,withPure     = true
}

mast_hold = item {
   nam          = _"палуба"
  ,DescendOn    = redirect_("Descend", "mast_rings")
}

square = scene {
   _flask       = false --Flask is found
  ,nam          = "На смотровой площадке"
  ,obj          = { 
                     "square_itself"
                    ,"square_mast"
                    ,"square_bag"
                    ,"flask" 
                    ,"square_gohold"
                  }
  ,TurnAround   = [[Площадка такая узкая, что мне сложно даже обернуться.]]
  ,Wait         = [[Мне совсем не хочется задерживаться здесь. А вдруг пойдет дождь или поднимется ураганный ветер? Кажется, что одного сильного порыва достаточно, чтобы
                    я сорвался с этой узенькой смотровой площадки. К тому же у меня начинает кружиться голова.]]
}

square_itself = item {
   nam          = _"смотровая площадка"
  ,dsc          = [[Я стою на узкой смотровой площадке.]]
  ,Exam         = [[Смотровая площадка совсем узкая, и мне приходится стоять, почти прижавшись спиной к мачте. ]]
  ,Ascend       = [[Я и так на смотровой площадке.]]
  ,Climb        = redirect_("Ascend", "square_itself")
  ,Descend      = walk_("maindeck", "Я отцепил веревку с крюком от мачты и осторожно слез со смотровой площадки -- мне пришлось повиснуть на руках, раскачаться и ухватиться ногами за ствол мачты. Потом, прижавшись к мачте всем телом, я соскользнул вниз, на палубу.")
  ,Move         = [[Каким образом я буду передвигать смотровую площадку?]]
  ,Sit          = [[Я сажусь на узкий деревянный козырек, по-прежнему крепко держась одной рукой за мачту. Я чувствую, как все сжимается у меня внутри, а босые ноги 
                    холодеют от страха. А ведь тот матрос забирался сюда даже во время шторма, когда корабль нещадно бросало на волнах.^Я медленно поднимаюсь на ноги.]]
  ,Lie          = [[Лечь здесь не получится.]]
  ,JumpFrom     = redirect_("JumpFrom", "mast_itself")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = [[Меня больше беспокоит, как бы не сорваться отсюда.]]
  ,Walk         = [[Здесь едва хватает места, чтобы стоять.]]
  ,WalkOn       = redirect_("Walk", "square_itself")
  ,WalkTo       = redirect_("Walk", "square_itself")
  ,withPure     = true
}

square_mast = item {
   nam          = _"мачта"
  ,dsc          = [[Теперь я понимаю, почему матрос, который забирался сюда, всегда обхватывал мачту одной рукой. Даже сейчас ветер такой сильный, что едва не сбивает с ног. К тому же от высоты 
                    у меня начинает кружиться голова. Лучше не смотреть вниз. ^К мачте привязан веревкой какой-то холщовый мешок.]]
  ,Exam         = [[Ствол мачты довольно скользский, за него почти невозможно ухватиться. Если бы не снасти, то я бы никогда не смог подняться сюда.]]
  ,Ascend       = [[Лезть дальше вверх по мачте на имеет смысла.]]
  ,Climb        = redirect_("Ascend", "square_mast")
  ,Descend      = redirect_("Descend", "square_itself")
  ,Move         = [[Это невозможно сделать.]]
  ,JumpFrom     = redirect_("JumpFrom", "mast_itself")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withPure     = true
}

square_bag = item {
   nam          = "мешок"
  ,Exam         = choose_ {
                     ["default"] = 
                        chain_ {
                          set_("square._flask"),
                          [[В мешке оказалась небольшая фляга. В ней еще что-то есть. Я открыл флягу и принюхался. В нос мне ударил резкий запах дешевого виски. 
                            Я положил флягу обратно в мешок.]]
                        }
                    ,["have(flask)"] = "В мешке больше ничего нет."
                  }
  ,Take         = [[Мне не нужен этот мешок, да и отвязать его от мачты будет совсем не просто.]]
  ,Move         = [[Отвязать мешок от мачты будет совсем не просто, и главное -- не ясно, зачем делать это.]]
  ,Untie        = redirect_("Move", "square_bag")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,withPure     = true
}

flask = item {
   _drink       = false
  ,nam          = name_ {
                     ["default"] = _"фляга"
                    ,["вылить"] = _"виски"
                    ,["налить"] = _"виски"
                    ,["лить"] = _"виски"
                    ,["намочить"] = _"виски"
                    ,["смочить"] = _"виски"
                    ,["пить"] = _"виски"
                    ,["выпить"] = _"виски"
                  }
  ,Exam         = [[Маленькая фляжка с дешевым виски -- наверное, секретная заначка моряка, который забирался на грот-мачту.]]
  ,Take         = chain_ {
                    take_("flask"),
                    [[Я забрал себе фляжку с виски -- наверняка я найду ей применение.]]
                  }
  ,Pure         = use_ {
                     ["default"] = "Не стоит выливать сюда виски."
                    ,["candle"] = "Ума не приложу, зачем мне может потребоваться выливать виски на свечу."
                    ,["matches"] = "Так я просто испорчу все спички."
                    ,["jacket"] = "Мне не хочется заливать свой камзол спиртным."
                    ,["pants"] = "Не понимаю, зачем мне может потребоваться пачкать свои брюки."
                    ,["kerchief"] = 
                        choose_ {
                           ["default"] = chain_ { set_("kerchief._drink"), "Я вылил немного виски на платок. Надеюсь, это поможет перебить запах в трюме." }
                          ,["kerchief._drink"] = "От платка и так уже несет виски."
                        }
                    ,["cabin_bed"] = [[Не стоит выливать виски на постель, где я сплю.]]
                    ,["cabin_journal"] = [[Я не собираюсь портить свой журнал.]]
                    ,["cabin_carpet"] = [[Залить ковер виски? Зачем?]]
                    ,["cabin_painting"] = [[Картина мне, конечно, не нравится, но заливать ее виски -- это варварство.]]
                  }
  ,Drink        = choose_ {
                     ["default"] = chain_ { set_("flask._drink"), "Я пригубил немного виски и едва сдержал кашель. Это крепкое пойло обожгло мне все горло." }
                    ,["flask._drink"] = [[Нет, пить это пойло мне больше не хочется.]]
                  }
  ,Throw        = [[Фляга мне еще пригодится, не стоит ее выбрасывать.]]
  ,ThrowIn      = redirect_("Throw", "flask")
  ,cnd          = if_("square._flask")
  ,withWet      = true
}

square_gohold = item {
   nam          = _"палуба"
  ,DescendOn    = redirect_("Descend", "square_itself")
}


------------------------------------------------------------------------------------------
-- hold
------------------------------------------------------------------------------------------

hold = scene {
   nam          = "Трюм"
  ,obj          = { 
                     "hold_air"
                    ,"hold_gocambus"
                    ,"hold_gocubrick"
                    ,"hold_godeck"
                    ,"hold_dusty"
                    ,"cmn_floor"
                  }
  ,Exit         = walk_("maindeck", "Я вышел из душного трюма и несколько раз глубоко вдохнул свежий солоноватый воздух.")
}

hold_air = item {
   nam          = _"воздух|трюм"
  ,dsc          = [[В трюме довольно сумрачно, и воздух весь пропитан пылью.]]
  ,Exam         = [[Можно подумать, что здесь не было ни одной человеческой души уже не поменьшей мере сотню лет.]]
}

hold_dusty = item {
   nam          = _"пыль"
  ,Exam         = [[Из-за этой пыли здесь сложно дышать.]]
}

hold_gocambus = item {
   nam          = _"камбуз"
  ,dsc          = [[Последние дни я стараюсь как можно реже спускаться сюда -- да и то лишь заглядываю в камбуз, чтобы взять продукты.]]
  ,WalkIn       = walk_("hold_cambus")
  ,ClimbIn      = walk_("hold_cambus")
}

hold_gocubrick = item {
   nam          = _"кубрик"
  ,dsc          = [[Тела двух матросов и капитана, которые были еще живы, когда мы потерпели крушение, я отнес в кубрик внизу и с тех пор
                    ни разу туда не заходил.^]]
  ,WalkIn       = walk_("hold_cubrick")
  ,ClimbIn      = walk_("hold_cubrick")
  ,DescendTo    = redirect_("WalkIn", "hold_gocubrick")
}

hold_godeck = item {
   nam          = _"палуба"
  ,dsc          = [[Но даже когда я просто стою здесь, невольно прикрывая лицо рукой, кажется, что весь воздух пропитан ядом, и мне хочется поскорее выбраться на
                    палубу.]]
  ,Walk         = redirect_("Exit", "hold")
  ,Ascend       = redirect_("Exit", "hold")
  ,Climb        = redirect_("Exit", "hold")
}

hold_cambus = scene {
   nam          = _"Камбуз"
  ,obj          = {
                     "cambus_itself"
                    ,"cambus_dishes"
                    ,"cambus_dust"
                    ,"cambus_axe"
                    ,"cambus_gocoridor" 
                    ,"cmn_floor"
                  }
  ,Exit         = walk_("hold")
}

cambus_itself = item {
   nam          = _"камбуз"
  ,dsc          = [[Здесь царит настоящий бедлам.]]
  ,Exam         = [[Не думаю, что здесь есть то, что мне нужно.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
}

cambus_dishes = item {
   nam          = _"посуда"
  ,dsc          = [[На деревянных столах свалена грязная посуда.]]
  ,Exam         = [[Посуда лежит здесь уже много дней. По какой-то причине мне совсем не хочется к ней прикасаться.]]
  ,Take         = [[Мне здесь ничего не нужно.]]
  ,Move         = [[Мне не хочется здесь ничего трогать.]]
  ,Clean        = redirect_("Move", "cambus_dishes")
}

cambus_dust = item {
   nam          = _"пыль"
  ,dsc          = [[Свет в камбузе тоже совсем тусклый, и в воздухе витает пыль.]]
  ,Exam         = [[Я с трудом сдерживаю приступ кашля.]]
}

cambus_axe = item {
   nam          = _"топор"
  ,dsc          = [[Я осматриваюсь. На стене у входа висит небольшой топорик.]]
  ,Exam         = [[Небольшой, с виду острый топорик. Я уже и не помню, для чего он использовался.]]
  ,Take         = [[Вряд ли мне сейчас пригодится топор.]]
  ,Move         = [[Зачем? Пусть топор висит на стене. По крайней мере так я не забуду, куда положил его, если он мне вдруг потребуется.]]
}

cambus_gocoridor = item {
   nam          = _"коридор"
  ,WalkIn       = redirect_("Exit", "hold_cambus")
  ,ClimbIn      = redirect_("Exit", "hold_cambus")
}

hold_cubrick = scene {
   _turn        = false --I turned around
  ,nam          = "Кубрик"
  ,obj          = { 
                     "cubrick_itself"
                    ,"cubrick_captain"
                    ,"cubrick_gocoridor" 
                    ,"cmn_floor"
                  }
  ,Exit         = walk_("hold")
  ,TurnAround   = choose_ {
                    ["not hold_cubrick._turn"] = 
                        chain_ {
                          set_("hold_cubrick._turn"),
                          [[Мне показалось, что я слышу какой-то шорох. Я вздрогнул и обернулся, но никого за моей спиной не было.]]
                        }
                  }
}

cubrick_itself = item {
   nam          = _"кубрик"
  ,dsc          = choose_ {
                     ["default"] = 
                        [[Здесь совсем нет света и стоит такой чудовищный запах, что я с трудом сдерживаю тошноту. Я зажимаю нос
                          платком, но это не помогает перебить жуткую вонь разлагающихся тел. Я больше не могу находиться здесь ни
                          секунды.]]
                    ,["kerchief._drink and (not have(candle) or not candle._fire)"] = 
                        [[Я зажал нос платком, и резкий запах виски перебил стоящий в трюме смрад. Однако здесь совсем темно, я ничего 
                          не могу рассмотреть.]]
                    ,["not kerchief._drink and have(candle) and candle._fire"] = 
                        [[Вздрагавающее при каждом моем вздохе пламя свечи освещает голые стены, однако в кубрике по-прежнему стоит такой 
                          запах, что я едва могу здесь находиться. Платок не помогает, надо как-нибудь перебить запах.]]
                    ,["kerchief._drink and have(candle) and candle._fire"] = 
                        [[Бледное пламя свечи едва освещает низкие своды кубрика. В этом судорожном и немощном свете кажется, что весь трюм заполнен человеческими трупами.]]
                  }
  ,Exam         = [[Все тела умерших я отнес в кубрик. Поначалу я думал как-то спустить их на берег и похоронить в земле по христианскому обычаю, но мне
                    пришлось бы перебрасывать тела за борт, в воду, а потом тащить их по каменистому берегу к зарослям хлебных деревьев, у которых можно 
                    вырыть могилу. Я бы просто не смог. По крайней мере, не в моем нынешнем состоянии. Быть может, потом, когда мне станет лучше... 
                    Надеюсь, Господь смилостивится надо мной.]]
  ,Clean        = [[Я боюсь прикасаться здесь хоть к чему-либо.]]
}

cubrick_captain = item {
   nam          = _"тело капитана"
  ,dsc          = [[Я замечаю тело капитана -- капитан сидит на полу у стены, склонив голову. Кажется, что он спит.]]
  ,Exam         = choose_ {
                     ["default"] = 
                        chain_ {
                          take_("key"),
                          [[Я обыскиваю тело. На шее у капитана висит небольшой кисет. В нем я нахожу маленький ключ с фигурной головкой.
                            Слава Богу, я не ошибся! Я забираю ключ с собой.]]
                        }
                    ,["have(key)"] = [[Мне больше ничего не нужно. Лучше убраться отсюда поскорее.]]
                  }
  ,cnd          = if_("have(candle) and candle._fire and kerchief._drink")
  ,Move         = [[Лучше не трогать тело капитана.]]
  ,Take         = redirect_("Move", "cubrick_captain")
  ,Pick         = redirect_("Move", "cubrick_captain")
}

key = item {
   nam          = _"ключ"
  ,Exam         = [[Маленький ключ с фигурной головкой. Скорее всего, это ключ от ящика стола в каюте капитана.]]
  ,withPure     = true
  ,withOpen     = true
}

cubrick_gocoridor = item {
   nam          = _"коридор"
  ,dsc          = [[^Мне хочется поскорее выйти отсюда в коридор.]]
  ,WalkIn       = redirect_("Exit", "hold_cubrick")
  ,ClimbIn      = redirect_("Exit", "hold_cubrick")
}


------------------------------------------------------------------------------------------
-- cabin
------------------------------------------------------------------------------------------

cabin = scene {
   nam          = "Каюта капитана"
  ,obj          = { 
                     "cabin_panes"
                    ,"cabin_carpet"
                    ,"cabin_bed"
                    ,"cabin_painting"
                    ,"cabin_box"
                    ,"candle"
                    ,"cabin_desk" 
                    ,"cabin_drobe"
                    ,"cabin_godeck"
                    ,"cabin_window"
                    ,"cabin_deskboxes_all"
                    ,"cmn_floor"
                  }
  ,Exit         = walk_("maindeck")
  ,TurnAround   = [[Я здесь один.]]
}

cabin_panes = item {
   nam          = _"резные панели|~панели"
  ,dsc          = [[Каюта капитана обставлена как чей-то роскошный кабинет в викторианском стиле. Стены украшены резными панелями из красного дерева,]]
  ,Exam         = [[Обстановка здесь напоминает мне кабинет отца. Помню, как заходил к нему в детстве, когда он работал у себя за столом и даже не замечал
                    меня. Мне тогда казалось, что я оказался внутри лакированной деревянной шкатулки -- только без музыки и танцующей фарфоровой балерины.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withPure     = true
}

cabin_carpet = item {
   nam          = _"ковер|~персидский ковёр"
  ,dsc          = [[пол застелен персидским ковром,]]
  ,Exam         = [[Ковер уже слегка поистрепался -- узоры немного поблекли, а бахрома по краям частично вылезла.]]
  ,Fire         = [[Вряд ли я смогу поджечь этот ковер. Да если и смогу -- зачем это делать?]]
  ,Move         = [[Мне нравится, как ковер лежит сейчас, не вижу смысла его трогать.]]
  ,Sit          = [[Лучше уж сесть на постель или за стол.]]
  ,Lie          = [[Ковер довольно пыльный, и мне не хочется на нем лежать, особенно, когда рядом есть удобная постель.]]
  ,Take         = [[И зачем мне забирать с собой персидский ковер?]]
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withPure     = true
}

cabin_bed = item {
   nam          = _"кровать|~постель"
  ,dsc          = [[а над широкой кроватью]]
  ,Exam         = [[На этой кровати я провожу каждую ночь.]]
  ,Sit          = [[Я присаживаюсь на постель. Еще только середина дня, а я чувствую себя измотанным, словно уже целую неделю на ногах. Но нет, не 
                    время отдыхать. Мне кажется, если я начну спать среди дня, то лишь сильнее разболеюсь. Нельзя сдаваться.^ Поборов в себе желание
                    растянуться на постели, я поднимаюсь на ноги.]]
  ,Move         = [[Зачем мне передвигать постель? К тому же она слишком тяжелая, один я не справлюсь.]]
  ,Lie          = walk_("bedroom")
  ,Climb        = walk_("bedroom")
  ,ClimbIn      = walk_("bedroom")
  ,Clean        = nilfn
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,withPure     = true
}

cabin_painting = item {
   nam          = _"картина"
  ,dsc          = [[висит картина в массивной и слегка безвкусной раме -- одномачтовый парусник, который взбирается на гребень ненатуральной маслянистой волны.]]
  ,Exam         = [[Сомневаюсь, что эту картину нарисовал известный живописец -- есть в ней какая-то аляповатость и наигранность. Море не слишком похоже
                    на море, а парусник кажется игрушечным корабликом, который вот-вот взмоет над волнами под дуновением ветра. Я даже подумывал о том,
                    чтобы снять эту картину со стены.]]
  ,Move         = [[Картину и правда стоило бы убрать отсюда, однако я почему-то все никак не решаюсь это сделать. Как если бы жду, что покойный капитан когда-нибудь
                    вернется и затребует права на свою каюту. Пусть я и на необитаемом острове, я здесь -- всего-лишь гость.]]
  ,Fire         = [[Хоть эта картина мне и не нравится, сжигать ее у меня намерений нет.]]
  ,FireOff      = nilfn
  ,Take         = [[У меня нет желания таскать с собой эту картину, пользы от нее никакой не будет.]]
  ,withPure     = true
}

cabin_box = item {
   nam          = _"тумбочка"
  ,dsc          = choose_ {
                     ["default"] = [[Рядом с кроватью стоит небольшая кряжистая тумбочка, на которой можно заметить свечу в подсвечнике.]]
                    ,["have(candle)"] = [[Рядом с кроватью стоит небольшая кряжистая тумбочка.]]
                  }
  ,Exam         = choose_ {
                     ["default"] = chain_ { take_("matches"), "Я осмотрел тумбочку и нашел в одном из ее ящиков коробок со спичками. Спички мне пригодятся. Я кладу их в карман." }
                    ,["have(matches)"] = "В тумбочке больше нет ничего полезного."
                  }
  ,Sit          = [[Вряд ли эта тумбочка хорошо подходит для того, чтобы на ней сидеть.]]
  ,Ascend       = redirect_("Sit", "cabin_box")
  ,Climb        = redirect_("Sit", "cabin_box")
  ,ClimbIn      = [[Сомневаюсь, что я смогу залезть в тумбочку.]]
  ,Open         = [[Тумбочка не закрыта.]]
  ,Move         = [[Сам не понимая, зачем, я отодвинул тумбочку от стены, но потом вновь поставил ее на прежнее место.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,withPure     = true
}

matches = item {
   nam          = _"спички"
  ,Exam         = [[Обычные фосфорные спички, почти полная коробка.]]
  ,Fire         = use_ {
                    ["matches"] = "Спички мне еще пригодятся, зачем их сжигать?"
                  }
  ,FireOff      = [[Ни одна из спичек сейчас не горит.]]
  ,Throw        = [[Спички мне наверняка пригодятся, не стоит их выбрасывать.]]
  ,ThrowIn      = redirect_("Throw", "matches")
  ,withPure     = true
  ,withFire     = true
}

candle = item {
   _fire        = false --Fire is on
  ,nam          = _"свеча"
  ,Exam         = [[Это уже даже и не свеча, а огарок, весь покрытый застывшими слезами воска. Однако несколько минут она еще точно погорит.]]
  ,Take         = chain_ { take_("candle"), "Я взял свечу." }
  ,FireDirect   = choose_ {
                     ["default"] = chain_ { set_("candle._fire"), "Я зажег свечу." }
                    ,["candle._fire"] = [[Свеча уже и так горит.]]
                  }
  ,Fire         = use_ {
                    ["matches"] = 
                        location_ {
                           ["cabin"] = redirect_("FireDirect", "candle")
                          ,["desk"] = redirect_("FireDirect", "candle")
                          ,["hold"] = redirect_("FireDirect", "candle")
                          ,["hold_cambus"] = redirect_("FireDirect", "candle")
                          ,["hold_cubrick"] = redirect_("FireDirect", "candle")
                          ,["default"] = "Я зажег свечу, но ее тут же погасил ветер."
                        }
                  }
  ,FireOff      = choose_ {
                     ["default"] = "Свеча и так не горит."
                    ,["candle._fire"] = chain_ { unset_("candle._fire"), "Я потушил свечу." }
                  }
  ,withPure     = true
}

cabin_godeck = item {
   direction    = true
  ,nam          = _"палуба"
  ,dsc          = [[^Я могу сесть за стол, где я веду журнал "Майского цветка" вместо капитана, лечь на постель или спуститься на палубу.]]
  ,Walk         = walk_("maindeck")
  ,DescendOn    = walk_("maindeck")
}

cabin_drobe = item {
   nam          = _"шкаф|~дубовый шкаф"
  ,dsc          = [[А у самой двери подпирает потолок огромный дубовый шкаф с позолоченными круглыми ручками.]]
  ,Exam         = [[Я осматриваю содержимое шкафа. Складывается впечатление, что у капитана здесь была свалка ненужных вещей, хотя я был почти уверен,
                    что он прячет в шкафу спиртное. Я и правда замечаю большую бутылку из-под скотча, однако бутылка пустая.]]
  ,Open         = "Шкаф и так открыт."
  ,Sit          = "Сесть на шкаф у меня вряд ли получится."
  ,Move         = "Шкаф слишком тяжелый, к тому же я не вижу никакого смысла его двигать."
  ,Ascend       = "Мне кажется, что залезать на шкаф -- не самая лучшая идея."
  ,Climb        = redirect_("Ascend", "cabin_drobe")
  ,ClimbIn      = [[Я не испытываю большого желания сидеть в шкафу.]]
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
}

cabin_deskboxes_all = item {
   nam          = _"~ящики стола"
  ,Exam         = redirect_("Open", "cabin_desk")
  ,Open         = redirect_("Open", "cabin_desk")
}

cabin_desk = item {
   nam          = _"стол"
  ,dsc          = [[Чуть дальше, у окна, расположился широкий письменный стол.]]
  ,Exam         = [[Теперь это мой рабочий стол, здесь я веду бортовой журнал "Майского цветка" вместо капитана. У стола есть несколько ящиков, один из которых запирается на ключ. 
                    Совсем недавно я <i>сидел за этим столом</i> и писал об эпидемии на корабле, о Лизе... Иногда мне кажется, что, если бы не бортовой журнал, я давно бы лишился рассудка
                    от одиночества.]]
  ,SitAt        = walk_("desk")
  ,Sit          = "Я не собираюсь сидеть на столе, когда рядом есть стул."
  ,Ascend       = redirect_("Sit", "cabin_desk")
  ,ClimbIn      = [[У меня нет желания залезать в стол.]]
  ,Open         = [[Осматривать ящики стола стоя неудобно, лучше мне сесть за стол.]]
  ,Clean        = nilfn
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Move         = [[Ума не приложу, зачем бы мне потребовалось передвигать стол, который сейчас стоит очень удачно, у самого окна.]]
  ,withPure     = true
}

cabin_window = item {
   nam          = _"окно"
  ,Exam         = [[Погода сегодня на удивление ясная. Совсем не хочется проводить время в этой душной каюте.]]
  ,Open         = [[По-моему это окно не открывается.]]
  ,Clean        = choose_ {
                     ["kerchief"] = [[Я протер оконное стекло своим измятым платком -- кажется, в каюте даже стало чуть светлее.]]
                    ,["jacket"] = [[Протирать окно камзолом не слишком удобно.]]
                  }
}

desk = scene {
   nam          = "За столом"
  ,obj          = { 
                     "desk_itself"
                    ,"cabin_deskboxes"
                    ,"cabin_closedbox"
                    ,"cabin_journal" 
                  }
  ,TurnAround   = [[Порою, когда я сижу за столом и делаю записи в журнал "Майского цветка", у меня возникает такое чувство, словно кто-то
                    незримый стоит позади меня и пристально смотрит на то, что я пишу из-за плеча. Нередко я даже оборачиваюсь -- лишь чтобы
                    убедиться в том, что в каюте нет никого, кроме меня.]]
  ,Wait         = [[Я какое-то время сижу, уставившись на бортовой журнал. В такие моменты я начинаю физически ощущать то чудовищное расстояние,
                    которое отделяет меня от дома -- словно бы внутри меня болезненно натягивается пронзительная струна. Еще чуть-чуть, и я не 
                    выдержу, поддамся панике, сойду с ума... Но надо держать себя в руках.]]
  ,Exit         = walk_("cabin")
}

desk_itself = item {
   nam          = _"стол"
  ,SitAt        = "Я уже и так сижу за столом."
  ,Exam         = [[Большой стол из резного дерева, который можно, скорее, ожидать увидеть в кабинете известного романиста.
                    У стола есть несколько ящиков с фигурными медными ручками.]]
  ,StandAtFrom  = redirect_("Exit", "desk")
  ,ClimbIn      = [[Сомневаюсь, что я помещусь в каком-либо из ящиков этого стола.]]
  ,Ascend       = [[У меня совсем нет желания забираться на стол.]]
  ,Sit          = redirect_("Ascend", "desk_itself")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Move         = redirect_("Move", "cabin_desk")
  ,Clean        = nilfn
  ,withPure     = true
}

cabin_deskboxes = item {
   nam          = _"верхние ящики"
  ,dsc          = [[Большой стол из резного дерева, который можно, скорее, ожидать увидеть в кабинете известного романиста.
                    У стола есть несколько ящиков с фигурными медными ручками.]]
  ,Exam         = [[В открытых ящиках нет ничего полезного -- письменные принадлежности, чистые листы бумаги, коробка с сигарами...
                    Вряд ли мне пригодится что-нибудь из этого.]]
  ,Take         = "Зачем мне таскать с собой ящик?"
  ,Open         = "Ящики и так открыты."
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,ClimbIn      = [[Сомневаюсь, что я помещусь в каком-либо из ящиков этого стола.]]
}

cabin_closedbox = item {
   _open        = false --Box is opened
  ,nam          = _"нижний ящик"
  ,dsc          = [[Нижний ящик закрывается на ключ -- думаю, именно в нем капитан хранил все свои ценные вещи.]]
  ,Exam         = choose_ {
                     ["default"] = 
                        [[Ящик закрыт на ключ. Готов поспорить, что ключ остался на теле у капитана. Капитана я перенес
                          в трюм, но это было... Сколько уже недель назад?.. Неужели мне придется вновь спускаться туда?]]
                    ,["cabin_closedbox._open"] = 
                        chain_ {
                          put_("spyglass2"),
                          [[В нижнем ящике действительно лежит подзорная труба, которую я видел несколько раз у капитана. Пусть она
                            и не заменит мне потерянную отцовскую, но я по крайней мере вновь смогу разглядеть хоть что-нибудь за поволокой тумана,
                            которая окружает остров.^Я несколько колеблюсь, будто бы дух капитана наблюдает за мной, будто бы я краду чужие вещи... 
                            Но ведь ему уже не пригодится эта подзорная труба...]]
                        }
                  }
  ,Open         = use_ {
                     ["nil"] = 
                        choose_ {
                           ["default"] = "Нижний ящик закрыт на ключ."
                          ,["cabin_closedbox._open"] = redirect_("Exam", "cabin_closedbox")
                        }
                    ,["rope"] = 
                        choose_ {
                           ["default"] = [[Вряд ли этим крюком получится выломать ящик, стол очень добротный, и ящик прилегает плотно, без всяких щелей. К тому же от этого ящика точно есть ключ.]]
                          ,["cabin_closedbox._open"] = [[Я уже открыл ящик ключем.]]
                        }
                    ,["key"] = 
                        chain_ { 
                          drop_("key"),
                          set_("cabin_closedbox._open"),
                          [[Ключ действительно подошел! Я повернул ключ несколько раз, раздался ровный приятный слуху щелчок, и ящик открылся.]]
                        }
                  }
  ,Take         = choose_ {
                     ["default"] = "Зачем мне таскать с собой ящик? Да и в любом случае, ящик закрыт на ключ, и я не могу его выдвинуть."
                    ,["cabin_closedbox._open"] = "Зачем мне таскать с собой ящик?"
                  }
  ,ClimbIn      = redirect_("ClimbIn", "cabin_deskboxes")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
}

cabin_journal = item {
   nam          = _"бортовой журнал|~журнал|~дневник"
  ,dsc          = [[На столе лежит бортовой журнал -- раньше его вел капитан, а теперь я пишу здесь свои заметки.]]
  ,Exam         = [[Капитан наш не был многословен. Здесь есть только запись об отбытии, а потом краткие заметки, да и то не каждый день, которые 
                    обрываются примерно когда началась эпидемия. А потом журнал продолжил вести уже я.]]
  ,withPure     = true
  ,Take         = [[Нет смысла носить с собой бортовой журнал.]]
  ,Fire         = [[Вести бортовой журнал -- единственное занятие, которое спасает меня от одиночества. Зачем мне сжигать его?]]
  ,FireOff      = nilfn
}

bedroom = scene {
   nam          = "На постели"
  ,obj          = { "bedroom_itself", "bedroom_legs" }
  ,TurnAround   = [[Сделать это совсем не просто, когда лежишь на постели.]]
  ,Wait         = [[Я немного полежал на постели, но от этого мне еще сильнее захотелось спать.]]
}

bedroom_itself = item {
   nam          = _"постель|~кровать"
  ,dsc          = [[Я лежу на постели. Я чертовски устал, хотя практически ничего за весь день не сделал -- как если бы
                    самый воздух на этом острове оказывал какое-то губительное воздействие на мой организм, вгонял меня в сонную хандру. 
                    Но еще самый разгар дня, мне не стоит разлеживаться на постели.]]
  ,Exam         = [[Постель так и не убрана с утра, однако сейчас мне не хочется ничем заниматься.]]
  ,Lie          = [[Я и так лежу на постели.]]
  ,Climb        = redirect_("Lie", "bedroom_itself")
  ,Sit          = walk_("cabin", "Я усаживаюсь на постели и какое-то время просто сижу так, ссутулившись и глядя себе под ноги. Затем наконец заставляю себя подняться на ноги.")
  ,Stand        = walk_("cabin", "Я с трудом заставил себя подняться с постели.")
  ,Fire         = nilfn
  ,FireOff      = nilfn
  ,Clean        = nilfn
  ,Move         = redirect_("Move", "cabin_bed")
}

bedroom_legs = item {
   nam          = _"ноги"
  ,StandOn      = redirect_("Stand", "bedroom_itself")
}